package com.xingzhi.shortvideosharingplatform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xingzhi.shortvideosharingplatform.model.UserBehaviorLogs;

public interface UserBehaviorLogsService extends IService<UserBehaviorLogs> {
    
    /**
     * 记录用户点赞行为
     * @param userId 用户ID
     * @param videoId 视频ID
     * @return 是否记录成功
     */
    boolean logLikeBehavior(Long userId, Long videoId);
    
    /**
     * 记录用户行为
     * @param userId 用户ID
     * @param videoId 视频ID
     * @param behaviorType 行为类型ID
     * @param typeName 行为类型名称
     * @return 是否记录成功
     */
    boolean logBehavior(Long userId, Long videoId, Long behaviorType, String typeName);
    
    /**
     * 删除用户点赞行为记录
     * @param userId 用户ID
     * @param videoId 视频ID
     * @return 是否删除成功
     */
    boolean removeUserLikeBehavior(Long userId, Long videoId);
    
    /**
     * 记录用户收藏行为
     * @param userId 用户ID
     * @param videoId 视频ID
     * @return 是否记录成功
     */
    boolean logFavoriteBehavior(Long userId, Long videoId);
    
    /**
     * 删除用户收藏行为记录
     * @param userId 用户ID
     * @param videoId 视频ID
     * @return 是否删除成功
     */
    boolean removeUserFavoriteBehavior(Long userId, Long videoId);
    
    /**
     * 记录用户关注行为
     * @param userId 关注者ID
     * @param followingId 被关注者ID
     * @return 是否记录成功
     */
    boolean logFollowBehavior(Long userId, Long followingId);
    
    /**
     * 删除用户关注行为记录
     * @param userId 关注者ID
     * @param followingId 被关注者ID
     * @return 是否删除成功
     */
    boolean removeUserFollowBehavior(Long userId, Long followingId);

    /**
     * 记录评论行为
     * @param userId 用户ID
     * @param videoId 视频ID
     * @param commentId 评论ID
     */
    void recordCommentBehavior(Long userId, Long videoId, Long commentId);
    
    /**
     * 记录点赞评论行为
     * @param userId 用户ID
     * @param videoId 视频ID
     * @param commentId 评论ID
     */
    void recordLikeCommentBehavior(Long userId, Long videoId, Long commentId);
} 